home *** CD-ROM | disk | FTP | other *** search
/ PC World 2007 January / PCWorld_2007-01_cd.bin / v cisle / autoit / autoit-v3.2.0.1-setup.exe / Examples / Helpfile / DllStructGetPtr.au3 < prev    next >
Text File  |  2006-06-17  |  2KB  |  62 lines

  1. ;example1
  2. ;get a window handle and use WinGetPos to get the windows' rectangle
  3. $hwnd    = WinGetHandle("")
  4. $coor    = WinGetPos($hwnd)
  5.  
  6. ;create the struct
  7. $rect    = DllStructCreate("int;int;int;int")
  8.  
  9. ;make the DllCall
  10. DLLCall("user32.dll","int","GetWindowRect", _
  11.         "hwnd",$hwnd, _
  12.         "ptr",DllStructGetPtr($rect)) ; use DllStructGetPtr when calling DllCall
  13.  
  14. ;get the returned rectangle
  15. $l = DllStructGetData($rect,1)
  16. $t = DllStructGetData($rect,2)
  17. $r = DllStructGetData($rect,3)
  18. $b = DllStructGetData($rect,4)
  19.  
  20. ;free the struct
  21. $rect = 0
  22.  
  23. ;display the results of WinGetPos and the returned rectangle
  24. MsgBox(0,"The Larry Test :)","WinGetPos(): (" & $coor[0] & "," & $coor[1] & _
  25.         ") (" & $coor[2] + $coor[0] & "," & $coor[3] + $coor[1] & ")" & @CRLF & _
  26.         "GetWindowRect(): (" & $l & "," & $t & ") (" & $r & "," & $b & ")")
  27.  
  28. ;example2
  29. ; DllStructGetPtr referencing an item
  30. $a            = DllStructCreate("int")
  31. if @error Then
  32.     MsgBox(0,"","Error in DllStructCreate " & @error);
  33.     exit
  34. endif
  35.  
  36. $b    = DllStructCreate("uint",DllStructGetPtr($a,1))
  37. if @error Then
  38.     MsgBox(0,"","Error in DllStructCreate " & @error);
  39.     exit
  40. endif
  41.  
  42. $c    = DllStructCreate("float",DllStructGetPtr($a,1))
  43. if @error Then
  44.     MsgBox(0,"","Error in DllStructCreate " & @error);
  45.     exit
  46. endif
  47.  
  48. ;set the data
  49. DllStructSetData($a,1,-1)
  50.  
  51. ;=========================================================
  52. ;    Display the different data types of the same data
  53. ;=========================================================
  54. MsgBox(0,"DllStruct",_
  55.         "int: " & DllStructGetData($a,1) & @CRLF & _
  56.         "uint: " & DllStructGetData($b,1) & @CRLF & _
  57.         "float: " & DllStructGetData($c,1) & @CRLF & _
  58.         "")
  59.  
  60. ; release memory allocated
  61. $a = 0
  62.